package com.sumainfor.pc.epc.dao;

import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @Author xiaoma
 * 装修计划mapper
 */
public interface DecorateMapper {


    /**
     * 修改装修计划主表
     * @param params
     * @return
     */
    Integer updateDecoratePlan(Map<String,Object> params);

    /**
     * 修改装修计划详表
     * @param params
     * @return
     */
    Integer updateDecoratePlanInfo(Map<String,Object> params);

    /**
     * 修改装修计划中房源配置详表的无线网络
     * @param params
     * @return
     */
    Integer updateHousingPlanInfo(Map<String,Object> params);
    ////////////////////////////////////////////////////////////////////
    /**
     * 按照状态以及 起止时间分页查询装修计划
     * @param params
     * @return
     */
    List<Map<String,Object>> getDecoratePlanpage(Map<String,Object> params);

    /**
     * 按照状态以及 起止时间统计装修计划
     * @param params
     * @return
     */
    Integer getCountDecoratePlanpage(Map<String,Object> params);

    /**
     * 根据批号统计房源个数
     * @param params
     * @return
     */
    Integer getcountPlansId(String PlanId);

    /**
     *根据批号 加统计查询房源完成数
     */
    Integer getcountCheckState(@Param("PlanId") String PlanId, @Param("CheckState") int CheckState);

    /**
     * 根据编号查询供应商总金额
     * @param params
     * @return
     */
    String getSumSupPrice(@Param("PlanId") String PlanId);

    /**
     * 查询软装总金额
     * @param PlanId
     * @return
     */
    String getsumComPrice(@Param("PlanId") String PlanId);

    /**
     *  查询啊其他费用
     * @param PlanId
     * @return
     */
    String getdecorate_rests(@Param("PlanId") String PlanId);
    //////////////////////////////////////////////////
    /**
     * 创建装修计划主表
     *
     * @param params
     * @return
     */
    Integer saveDecoratePlan(Map<String, Object> params);

    /**
     * 创建装修计划详表
     *
     * @param params
     * @return
     */
    Integer saveDecoratePlanInfo(Map<String, Object> params);

    /**
     * 新增装修计划-土建验房项
     * @param params
     * @return
     */
    Integer savehousingplanbuilding(Map<String,Object> params);


    /**
     * 根据类型查询供应商
     *
     * @param params
     * @return
     */
    List<Map<String, Object>> getSupplier(Map<String, Object> params);



    ///////////////////////////////
    Map<String, Object> getdecorateByHouId(String houId);

    /**
     * 获取商品主表中所有的商品名称
     *
     * @param typeId 类型的ID
     * @return
     */
    List<Map<String, Object>> selectShopNames(Map<String, Object> params);

    /**
     * 按照商品名称查询所有的规格
     * @param params
     * @return
     */
    List<Map<String, Object>> selectComSpeName(Map<String, Object> params);

    /**
     * 根据规格id 查询单位
     *
     * @param params
     * @return
     */
    String getMonadByComSpeId(Map<String, Object> params);

    /**
     * 分页模糊查询装修计划
     *
     * @param params
     * @return
     */
    List<Map<String, Object>> getDecoratePlan(Map<String, Object> params);

    Integer getDecoratePlanCount(Map<String, Object> params);

    /**
     * 按装修计划编号统计房源
     *
     * @param PlanId
     * @return
     */
    Integer getPlanInfoCountByPlanId(String PlanId);


    /**
     * 查询装修阶段8大配置
     * @return
     */
    List<Map<String,Object>> getDep();

    /**
     * 查询土建阶段三大配置
     * @return
     */
    List<Map<String,Object>> getBuilding();


    /**
     * 创建装修计划时候新增装修计划祥表配置进度表
     * @param params
     */
    void saveInfoPeploy(Map<String,Object> params);

    /////////////////////////

    /**
     * 查询计划详表
     * @param params
     * @return
     */
    List<Map<String,Object>> gettcepc_decorate_plan_info(Map<String,Object> params);

    /**
     * 根据自编号id查询硬装供应商id
     * @param params
     * @return
     */
    String getSupPriceBydecorate_plan_info(String PlansId);

    /**
     * 根据自编号id 查询软装价格
     * @param params
     * @return
     */
    String getComPriceBytcepc_housing_plan_info(String PlansId);


    /**
     * 查询其他费用
     * @param PlansId
     * @return
     */
    String getComPriceBytcepc_decorate_rests(String PlansId);

    //////////////////////////////

    /**
     * 工程经理审核装修计划批次
     * @param params
     * @return
     */
    Integer updatetcepc_decorate_plan(Map<String,Object> params);


    /**
     *  经理审核的时候创建装修采购单主表
     * @param params
     * @return
     */
    Integer saveTcepcBuyer(Map<String,Object> params);

    /**
     *  统计未审核的其他费用
     * @param PlanId
     * @return
     */
    Integer getRestsByIfStatus(@Param("PlanId") String PlanId);

    ///////////查询土建阶段

    List<Map<String,Object>> getBuildings(Map<String,Object> params);

    /**
     * 获取其中一个房源编号
     * @param planId
     * @return
     */
    String getHousingIdOne(@Param("planId") String planId);

}
